package org.qiuqiu.vo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class PostExample {
    protected String orderByClause;
	protected boolean distinct;
	protected List<Criteria> oredCriteria;

	public PostExample() {
		oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}

	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct(boolean distinct) {
		this.distinct = distinct;
	}

	public boolean isDistinct() {
		return distinct;
	}

	public List<Criteria> getOredCriteria() {
		return oredCriteria;
	}

	public void or(Criteria criteria) {
		oredCriteria.add(criteria);
	}

	public Criteria or() {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria() {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
			oredCriteria.add(criteria);
		}
		return criteria;
	}

	protected Criteria createCriteriaInternal() {
		Criteria criteria = new Criteria();
		return criteria;
	}

	public void clear() {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value,
				String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property
						+ " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1,
				Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property
						+ " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		public Criteria andPostidIsNull() {
			addCriterion("postid is null");
			return (Criteria) this;
		}

		public Criteria andPostidIsNotNull() {
			addCriterion("postid is not null");
			return (Criteria) this;
		}

		public Criteria andPostidEqualTo(Integer value) {
			addCriterion("postid =", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidNotEqualTo(Integer value) {
			addCriterion("postid <>", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidGreaterThan(Integer value) {
			addCriterion("postid >", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidGreaterThanOrEqualTo(Integer value) {
			addCriterion("postid >=", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidLessThan(Integer value) {
			addCriterion("postid <", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidLessThanOrEqualTo(Integer value) {
			addCriterion("postid <=", value, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidIn(List<Integer> values) {
			addCriterion("postid in", values, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidNotIn(List<Integer> values) {
			addCriterion("postid not in", values, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidBetween(Integer value1, Integer value2) {
			addCriterion("postid between", value1, value2, "postid");
			return (Criteria) this;
		}

		public Criteria andPostidNotBetween(Integer value1, Integer value2) {
			addCriterion("postid not between", value1, value2, "postid");
			return (Criteria) this;
		}

		public Criteria andUseridIsNull() {
			addCriterion("userid is null");
			return (Criteria) this;
		}

		public Criteria andUseridIsNotNull() {
			addCriterion("userid is not null");
			return (Criteria) this;
		}

		public Criteria andUseridEqualTo(Integer value) {
			addCriterion("userid =", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridNotEqualTo(Integer value) {
			addCriterion("userid <>", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridGreaterThan(Integer value) {
			addCriterion("userid >", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridGreaterThanOrEqualTo(Integer value) {
			addCriterion("userid >=", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridLessThan(Integer value) {
			addCriterion("userid <", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridLessThanOrEqualTo(Integer value) {
			addCriterion("userid <=", value, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridIn(List<Integer> values) {
			addCriterion("userid in", values, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridNotIn(List<Integer> values) {
			addCriterion("userid not in", values, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridBetween(Integer value1, Integer value2) {
			addCriterion("userid between", value1, value2, "userid");
			return (Criteria) this;
		}

		public Criteria andUseridNotBetween(Integer value1, Integer value2) {
			addCriterion("userid not between", value1, value2, "userid");
			return (Criteria) this;
		}

		public Criteria andPostTitleIsNull() {
			addCriterion("post_title is null");
			return (Criteria) this;
		}

		public Criteria andPostTitleIsNotNull() {
			addCriterion("post_title is not null");
			return (Criteria) this;
		}

		public Criteria andPostTitleEqualTo(String value) {
			addCriterion("post_title =", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleNotEqualTo(String value) {
			addCriterion("post_title <>", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleGreaterThan(String value) {
			addCriterion("post_title >", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleGreaterThanOrEqualTo(String value) {
			addCriterion("post_title >=", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleLessThan(String value) {
			addCriterion("post_title <", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleLessThanOrEqualTo(String value) {
			addCriterion("post_title <=", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleLike(String value) {
			addCriterion("post_title like", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleNotLike(String value) {
			addCriterion("post_title not like", value, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleIn(List<String> values) {
			addCriterion("post_title in", values, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleNotIn(List<String> values) {
			addCriterion("post_title not in", values, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleBetween(String value1, String value2) {
			addCriterion("post_title between", value1, value2, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostTitleNotBetween(String value1, String value2) {
			addCriterion("post_title not between", value1, value2, "postTitle");
			return (Criteria) this;
		}

		public Criteria andPostUsernameIsNull() {
			addCriterion("post_username is null");
			return (Criteria) this;
		}

		public Criteria andPostUsernameIsNotNull() {
			addCriterion("post_username is not null");
			return (Criteria) this;
		}

		public Criteria andPostUsernameEqualTo(String value) {
			addCriterion("post_username =", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameNotEqualTo(String value) {
			addCriterion("post_username <>", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameGreaterThan(String value) {
			addCriterion("post_username >", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameGreaterThanOrEqualTo(String value) {
			addCriterion("post_username >=", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameLessThan(String value) {
			addCriterion("post_username <", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameLessThanOrEqualTo(String value) {
			addCriterion("post_username <=", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameLike(String value) {
			addCriterion("post_username like", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameNotLike(String value) {
			addCriterion("post_username not like", value, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameIn(List<String> values) {
			addCriterion("post_username in", values, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameNotIn(List<String> values) {
			addCriterion("post_username not in", values, "postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameBetween(String value1, String value2) {
			addCriterion("post_username between", value1, value2,
					"postUsername");
			return (Criteria) this;
		}

		public Criteria andPostUsernameNotBetween(String value1, String value2) {
			addCriterion("post_username not between", value1, value2,
					"postUsername");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeIsNull() {
			addCriterion("post_createTime is null");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeIsNotNull() {
			addCriterion("post_createTime is not null");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeEqualTo(Date value) {
			addCriterion("post_createTime =", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeNotEqualTo(Date value) {
			addCriterion("post_createTime <>", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeGreaterThan(Date value) {
			addCriterion("post_createTime >", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeGreaterThanOrEqualTo(Date value) {
			addCriterion("post_createTime >=", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeLessThan(Date value) {
			addCriterion("post_createTime <", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeLessThanOrEqualTo(Date value) {
			addCriterion("post_createTime <=", value, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeIn(List<Date> values) {
			addCriterion("post_createTime in", values, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeNotIn(List<Date> values) {
			addCriterion("post_createTime not in", values, "postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeBetween(Date value1, Date value2) {
			addCriterion("post_createTime between", value1, value2,
					"postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostCreatetimeNotBetween(Date value1, Date value2) {
			addCriterion("post_createTime not between", value1, value2,
					"postCreatetime");
			return (Criteria) this;
		}

		public Criteria andPostContentIsNull() {
			addCriterion("post_content is null");
			return (Criteria) this;
		}

		public Criteria andPostContentIsNotNull() {
			addCriterion("post_content is not null");
			return (Criteria) this;
		}

		public Criteria andPostContentEqualTo(String value) {
			addCriterion("post_content =", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentNotEqualTo(String value) {
			addCriterion("post_content <>", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentGreaterThan(String value) {
			addCriterion("post_content >", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentGreaterThanOrEqualTo(String value) {
			addCriterion("post_content >=", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentLessThan(String value) {
			addCriterion("post_content <", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentLessThanOrEqualTo(String value) {
			addCriterion("post_content <=", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentLike(String value) {
			addCriterion("post_content like", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentNotLike(String value) {
			addCriterion("post_content not like", value, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentIn(List<String> values) {
			addCriterion("post_content in", values, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentNotIn(List<String> values) {
			addCriterion("post_content not in", values, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentBetween(String value1, String value2) {
			addCriterion("post_content between", value1, value2, "postContent");
			return (Criteria) this;
		}

		public Criteria andPostContentNotBetween(String value1, String value2) {
			addCriterion("post_content not between", value1, value2,
					"postContent");
			return (Criteria) this;
		}

		public Criteria andPostResponseIsNull() {
			addCriterion("post_response is null");
			return (Criteria) this;
		}

		public Criteria andPostResponseIsNotNull() {
			addCriterion("post_response is not null");
			return (Criteria) this;
		}

		public Criteria andPostResponseEqualTo(Integer value) {
			addCriterion("post_response =", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseNotEqualTo(Integer value) {
			addCriterion("post_response <>", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseGreaterThan(Integer value) {
			addCriterion("post_response >", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseGreaterThanOrEqualTo(Integer value) {
			addCriterion("post_response >=", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseLessThan(Integer value) {
			addCriterion("post_response <", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseLessThanOrEqualTo(Integer value) {
			addCriterion("post_response <=", value, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseIn(List<Integer> values) {
			addCriterion("post_response in", values, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseNotIn(List<Integer> values) {
			addCriterion("post_response not in", values, "postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseBetween(Integer value1, Integer value2) {
			addCriterion("post_response between", value1, value2,
					"postResponse");
			return (Criteria) this;
		}

		public Criteria andPostResponseNotBetween(Integer value1, Integer value2) {
			addCriterion("post_response not between", value1, value2,
					"postResponse");
			return (Criteria) this;
		}
	}

	public static class Criterion {
		private String condition;
		private Object value;
		private Object secondValue;
		private boolean noValue;
		private boolean singleValue;
		private boolean betweenValue;
		private boolean listValue;
		private String typeHandler;

		public String getCondition() {
			return condition;
		}

		public Object getValue() {
			return value;
		}

		public Object getSecondValue() {
			return secondValue;
		}

		public boolean isNoValue() {
			return noValue;
		}

		public boolean isSingleValue() {
			return singleValue;
		}

		public boolean isBetweenValue() {
			return betweenValue;
		}

		public boolean isListValue() {
			return listValue;
		}

		public String getTypeHandler() {
			return typeHandler;
		}

		protected Criterion(String condition) {
			super();
			this.condition = condition;
			this.typeHandler = null;
			this.noValue = true;
		}

		protected Criterion(String condition, Object value, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.typeHandler = typeHandler;
			if (value instanceof List<?>) {
				this.listValue = true;
			} else {
				this.singleValue = true;
			}
		}

		protected Criterion(String condition, Object value) {
			this(condition, value, null);
		}

		protected Criterion(String condition, Object value, Object secondValue,
				String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.secondValue = secondValue;
			this.typeHandler = typeHandler;
			this.betweenValue = true;
		}

		protected Criterion(String condition, Object value, Object secondValue) {
			this(condition, value, secondValue, null);
		}
	}

	/**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table post
     *
     * @mbggenerated do_not_delete_during_merge Tue Jan 06 16:05:42 CST 2015
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }
}